from django.shortcuts import render
from django.contrib.auth.hashers import check_password
from django.contrib.auth import logout
from rest_framework.status import *
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework_jwt.utils import jwt_encode_handler,jwt_payload_handler

from .models import Users
# Create your views here.
class Login(APIView):
    def post(self,request):
        user_name = request.data.get('username')
        pwd = request.data.get('password')
        user =Users.objects.filter(username=user_name).count()
        if user ==0:
            user =Users.objects.create_user(username=user_name,password=pwd)
            print(">>>>>AS@#$@%@",user)
        else:
            user = Users.objects.get(username=user)
            rest =check_password(pwd,user.password)
            if not rest:
                return Response({"msg":"用户或密码不对"},status=HTTP_204_NO_CONTENT)
        payload = jwt_payload_handler(user)
        token = jwt_encode_handler(payload)
        return Response({"msg":"ok",'code':200,'user':user.username,'token':token},status=HTTP_200_OK)

class UserInfo(APIView):
    def get(self,request):
        name =request.query_params.get('name')
        data ={
            "code": 200,
            "message": "操作成功",
            "data": {"roles": ["超级管理员"],
                     "icon": "http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg.jpg",
                     "menus": [{"id": 1, "parentId": 0, "createTime": "2020-02-02T06:50:36.000+00:00", "title": "商品",
                                "level": 0, "sort": 0, "name": "pms", "icon": "product", "hidden": 0},
                               {"id": 2, "parentId": 1, "createTime": "2020-02-02T06:51:50.000+00:00", "title": "商品列表",
                                "level": 1, "sort": 0, "name": "product", "icon": "product-list", "hidden": 0},
                               {"id": 3, "parentId": 1, "createTime": "2020-02-02T06:52:44.000+00:00", "title": "添加商品",
                                "level": 1, "sort": 0, "name": "addProduct", "icon": "product-add", "hidden": 0},
                               {"id": 4, "parentId": 1, "createTime": "2020-02-02T06:53:51.000+00:00", "title": "商品分类",
                                "level": 1, "sort": 0, "name": "productCate", "icon": "product-cate", "hidden": 0},
                               {"id": 5, "parentId": 1, "createTime": "2020-02-02T06:54:51.000+00:00", "title": "商品类型",
                                "level": 1, "sort": 0, "name": "productAttr", "icon": "product-attr", "hidden": 0},
                               {"id": 6, "parentId": 1, "createTime": "2020-02-02T06:56:29.000+00:00", "title": "品牌管理",
                                "level": 1, "sort": 0, "name": "brand", "icon": "product-brand", "hidden": 0},
                               {"id": 7, "parentId": 0, "createTime": "2020-02-02T08:54:07.000+00:00", "title": "订单",
                                "level": 0, "sort": 0, "name": "oms", "icon": "order", "hidden": 0},
                               {"id": 8, "parentId": 7, "createTime": "2020-02-02T08:55:18.000+00:00", "title": "订单列表",
                                "level": 1, "sort": 0, "name": "order", "icon": "product-list", "hidden": 0},
                               {"id": 9, "parentId": 7, "createTime": "2020-02-02T08:56:46.000+00:00", "title": "订单设置",
                                "level": 1, "sort": 0, "name": "orderSetting", "icon": "order-setting", "hidden": 0},
                               {"id": 10, "parentId": 7, "createTime": "2020-02-02T08:57:39.000+00:00",
                                "title": "退货申请处理", "level": 1, "sort": 0, "name": "returnApply", "icon": "order-return",
                                "hidden": 0}, {"id": 11, "parentId": 7, "createTime": "2020-02-02T08:59:40.000+00:00",
                                               "title": "退货原因设置", "level": 1, "sort": 0, "name": "returnReason",
                                               "icon": "order-return-reason", "hidden": 0},
                               {"id": 12, "parentId": 0, "createTime": "2020-02-04T08:18:00.000+00:00", "title": "营销",
                                "level": 0, "sort": 0, "name": "sms", "icon": "sms", "hidden": 0},
                               {"id": 13, "parentId": 12, "createTime": "2020-02-04T08:19:22.000+00:00",
                                "title": "秒杀活动列表", "level": 1, "sort": 0, "name": "flash", "icon": "sms-flash",
                                "hidden": 0}, {"id": 14, "parentId": 12, "createTime": "2020-02-04T08:20:16.000+00:00",
                                               "title": "优惠券列表", "level": 1, "sort": 0, "name": "coupon",
                                               "icon": "sms-coupon", "hidden": 0},
                               {"id": 16, "parentId": 12, "createTime": "2020-02-07T08:22:38.000+00:00",
                                "title": "品牌推荐", "level": 1, "sort": 0, "name": "homeBrand", "icon": "product-brand",
                                "hidden": 0}, {"id": 17, "parentId": 12, "createTime": "2020-02-07T08:23:14.000+00:00",
                                               "title": "新品推荐", "level": 1, "sort": 0, "name": "homeNew",
                                               "icon": "sms-new", "hidden": 0},
                               {"id": 18, "parentId": 12, "createTime": "2020-02-07T08:26:38.000+00:00",
                                "title": "人气推荐", "level": 1, "sort": 0, "name": "homeHot", "icon": "sms-hot",
                                "hidden": 0}, {"id": 19, "parentId": 12, "createTime": "2020-02-07T08:28:16.000+00:00",
                                               "title": "专题推荐", "level": 1, "sort": 0, "name": "homeSubject",
                                               "icon": "sms-subject", "hidden": 0},
                               {"id": 20, "parentId": 12, "createTime": "2020-02-07T08:28:42.000+00:00",
                                "title": "广告列表", "level": 1, "sort": 0, "name": "homeAdvertise", "icon": "sms-ad",
                                "hidden": 0},
                               {"id": 21, "parentId": 0, "createTime": "2020-02-07T08:29:13.000+00:00", "title": "权限",
                                "level": 0, "sort": 0, "name": "ums", "icon": "ums", "hidden": 0},
                               {"id": 22, "parentId": 21, "createTime": "2020-02-07T08:29:51.000+00:00",
                                "title": "用户列表", "level": 1, "sort": 0, "name": "admin", "icon": "ums-admin",
                                "hidden": 0}, {"id": 23, "parentId": 21, "createTime": "2020-02-07T08:30:13.000+00:00",
                                               "title": "角色列表", "level": 1, "sort": 0, "name": "role",
                                               "icon": "ums-role", "hidden": 0},
                               {"id": 24, "parentId": 21, "createTime": "2020-02-07T08:30:53.000+00:00",
                                "title": "菜单列表", "level": 1, "sort": 0, "name": "menu", "icon": "ums-menu",
                                "hidden": 0}, {"id": 25, "parentId": 21, "createTime": "2020-02-07T08:31:13.000+00:00",
                                               "title": "资源列表", "level": 1, "sort": 0, "name": "resource",
                                               "icon": "ums-resource", "hidden": 0}],
                     "username": name
                     }
        }
        return Response(data)
class Logout(APIView):
    def post(self,request):
        logout(request)
        return Response({"msg":"成功退出"})